handlerWrapper.js ➔ ???   B
last analyzed

Complexity

Conditions 1
Paths 0

Size

Total Lines 26

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
c 1
b 0
f 0
nc 0
nop 2
dl 0
loc 26
ccs 0
cts 12
cp 0
crap 2
rs 8.8571
1
"use strict";
2
3
const logger = require('../logger/taskLogger')('Routing');
4
const transformers = require('./transformers');
5
6
module.exports = (name, handler) => (request, reply) => {
7
    const promise = new Promise(resolve => {
8
        request = transformers.in(request);
9
        logger.info(`[${name.toUpperCase()}][Request]`, {request});
10
11
        resolve(handler(request));
12
    })
13
        .then(response => {
14
            logger.info(`[${name.toUpperCase()}][Response]`, {response});
15
16
            return response;
17
        })
18
    ;
19
20
    return promise.then(response => {
21
        reply({result: transformers.out(response)}).type('application/json');
22
    })
23
        .catch(error => {
24
            // Reply with an error
25
            logger.error(error.stack);
26
            reply({error: error.message}).type('application/json').code(500);
27
28
            return Promise.resolve();
29
        })
30
    ;
31
};
32